Docker是一個開放原始碼的開放平臺軟體,用於開發應用、交付應用和執行應用。Docker允許使用者將基礎設施中的應用單獨分割出來,形成更小的容器化服務,從而提高交付軟體的速度。
為什麼我們要容器化我們的服務呢?
簡單的來說,就是要增加我們程式的互通性,使用Dockerfile把服務包起來的方式,使的服務變得獨力、可控、且多擴展性為主要目的。
容器化是一種在概念上相似於虛擬機,但在原理上略有不同的技術,其主要目的在於提供開發者用於測試應用程式的沙盒環境。開發者將想測試的應用程式與 Dependency(相依性資源)封裝於容器進行測試。容器化與 VM 的相異之處在於,由於容器不會模擬系統底層的基礎架構,因此需耗費的資源也相對較低。開發者能夠在容器內配置不同的資源,因為每個容器都獨立運行且彼此之間不會互相影響
容器是映像檔建立出來的實例(Instance),我們能將它比喻為一個輕量級的沙盒,Docker 利用容器運行和隔離應用程式,能夠在容器中將應用程式啟動、開始、停止、刪除。由於映像檔是唯讀(Read Only)的模板,因此容器在運行後映像檔的上層會增加一個能夠修改的讀寫層(Read and Write),而映像檔本身則不變。
Repository 是儲存映像檔的地方,使用者可以將自己完成的映像檔上傳至倉庫上儲存,倉庫上也有許多現成的映像檔供用戶存取,倉儲的種類被分為公開與私人兩種,目前官方最大的公開倉庫是 Docker Hub。在上面儲存了超過 15,000 個映像檔供使用者下載。
請準備一 Linux主機or虛擬機(cli 或 gui)都可
安裝步驟參考官網
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install the Docker packages
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
成功的話會有以下輸出